package demo14;

/*
编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀，返回空字符串 ""。
 */
public class Test {
    public static void main(String[] args) {

        String[] strs = {"ab","a"};
        System.out.println(longestCommonPrefix(strs));

    }


    public static String longestCommonPrefix(String[] strs) {

        if(strs.length == 0){
            //无字符串数组，返回空字符串
            return "";
        }else if(strs.length == 1){
            //只有一个字符串，直接返回原串即可
            return strs[0];
        }
        //用来装公共词缀
        StringBuffer sb = new StringBuffer();
        //初始下标从0开始读
        int index = 0;
        while (true){
            //读一轮所有字符串的同一下标
            for (int i = 0; i < strs.length-1; i++) {
                if(index < strs[i].length() && index < strs[i+1].length()
                        && strs[i].charAt(index) == strs[i+1].charAt(index)){
                    //没问题，下标对应的字符相等
                }else{
                    //有问题，下标对应的字符不相等。或者某个串已经读到尽头了
                    return sb.toString();
                }
            }
            sb.append(""+strs[0].charAt(index));
            index++;
        }
    }
}
